Hyper-linked Software Architectures for Concurrent Engineering

نویسندگان

  • Juan C. Dueñas
  • Manfred Hauswirth
چکیده

In this paper, the idea of considering software architecture (SA) as a tool for the gradual introduction of Concurrent Engineering (CE) issues in the industrial area is explored. SAs are placed among the first steps in the development of a large software system. Using them following the principles of CE implies some requirements on the supporting infrastructure, that can be met by hyper-linked information systems. The quickly growing World Wide Web (WWW) system fits all the requirements expressed, and makes a realistic choice for a gradual introduction of SA in production environments. It also serves as an integration framework for tools dealing with SA reasoning. For these reasons, it can be used to provide services oriented towards helping designers in the discovery, communication, and evaluation of software designs in an incremental way. SOFTWARE ARCHITECTURES Software architecture (SA) has been recently described as "a communication technology for the development of software systems, instead of a software engineering technology" (Brown 1996). We can find almost as many SA definitions as researchers are, but almost all of them coincide to include in the definition both models of the system being built, as well as constraints or guidelines for design (Shaw and Garlan 1996). This coincidence reflects a common understanding about the final users of SAs: the people developing the system. To be more specific, groups of people working on the developing system. The main uses of the SA can further clarify its actual objective as a communication technology. SAs are used for teaching newcomers the basics of systems being built. In this case, the main advantage of using a SA is that it gives an abstract overview of the system, helping developers to find their working context (this is especially needed when “programming in the large”). It is also worth noting that SA has been proposed by some authors as the foundation of Software Engineering teaching, in the form of paradigmatic solutions for well-known problems, using architectural styles (Buschmann et al. 1996). In the initial phases of development, SA helps to understand the system requirements and guide the discussion on features and resources required. In fact, the initial design decisions are proven to be crucial for the future system quality, and they must be taken with the agreement of different stakeholders (perhaps with different backgrounds). Then, SA acts as a "common ground" to all of them, facilitating the discussion in terms easily understood by all of the group. The assessment (on objective or subjective basis) of the SA with respect to quality requirements (mainly concentrated on non-functional ones) is an important use, often done by a group of experts working on the same model. For this matter, we propose to link all the information regarding the objective or subjective decision making process to the SA models. SA can be used as a reengineering vehicle for the maintenance and improvement of the current systems. It is a recognized fact that some of the main efforts towards SA research are driven by large companies with long life span systems that would need to be improved, and the very first step towards that is obtaining the "conceptual integrity" (Brooks 1996) of these very large systems. It would also be of primary importance to obtain the design trajectory for the decisions taken on the system during its life cycle. In this aspect, the usage of reengineered models to discover structural or behavioral patterns (Mendoza and Kramer 1997) could lead to obtain the “hidden” architecture. Unfortunately, there is no evidence towards a possibility of solving this automatically at this moment, so the only choice is human inspection (Eixelsberger et al. 1997). Again, the documentation nature of SA appears. The model portion of the SA is valid in the development process to assign work loads or to define subsystems to be developed by different work groups. But the guidelines included in the SA are even more important for the controllable and repeatable design and implementation of the system. Initially, these guidelines can be handled as a "Frequently Asked Questions" list, or as a company’s style book. Our proposal is to give access to this information in a context-sensitive way, and offering several views depending on its intended use. The SA evolves in time, acting as a design trace on the development of systems of related domains. Initially, the SA composed by the Architecture Description Language (ADL) models (Carnegie Mellon University 1997b) and the guidelines should be enriched adding information about previous systems developed. Then, the SA should be

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Weaving the Software Development Process Between Requirements and Architectures

This position paper argues for the concurrent, iterative development of requirements and architectures during the development of software systems. It presents the “Twin Peaks” model – a partial and simplified version of the spiral model – that illustrates the distinct, yet intertwined activities of requirements engineering and architectural design. The paper suggests that the use of various kin...

متن کامل

Sharing of Data and Code in Main Memory

The engineering of large software systems is greatly simplified if individual modules can be constructed separately and later linked together. This also permits the reuse of modules developed previously, and the use of libraries and other modules built by others, thus reducing the total software development cost. To facilitate the necessary cooperation, a flexible linking mechanism should be pr...

متن کامل

Software Variability Composition and Abstraction in Robot Control Systems

ion in Robot Control Systems Davide Brugali, Mauro Valota University of Bergamo, Dalmine, Italy, [email protected], [email protected] Abstract. Control systems for autonomous robots are concurrent, disControl systems for autonomous robots are concurrent, distributed, embedded, real-time and data intensive software systems. A real-world robot control system is composed of tens of softwar...

متن کامل

Software ENgineering A coordination-based framework for distributed constraint solving

DICE (DIstributed Constraint Environment) is a framework for the construction of distributed constraint solvers from software components in a number of predefined categories. The framework is implemented using the Manifold coordination language, and coordinates the components of a distributed solver by means of coordination protocols that implement a distributed constraint propagation algorithm...

متن کامل

Formalizing Composable Software Systems — A Research Agenda

Flexibility is achieved in open systems by adopting software architectures that allow software components to be easily plugged in, adapted and exchanged. But open systems are generally concurrent, distributed and heterogeneous in addition to being adaptable. Ad hoc approaches to specifying component frameworks can lead to unexpected semantic conflicts. We propose, instead, to develop a rigorous...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002